package com.gl.glbooks.services;

import org.springframework.flex.remoting.RemotingDestination;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.gl.glbooks.vos.Actividad;
import com.gl.glbooks.vos.Categoria;
import com.gl.glbooks.vos.Comentario;
import com.gl.glbooks.vos.Confirmacion;
import com.gl.glbooks.vos.Editorial;
import com.gl.glbooks.vos.Ejemplar;
import com.gl.glbooks.vos.Libro;
import com.gl.glbooks.vos.LibroDigital;
import com.gl.glbooks.vos.LibroFisico;
import com.gl.glbooks.vos.Oficina;
import com.gl.glbooks.vos.PalabraClave;
import com.gl.glbooks.vos.Sugerencia;
import com.gl.glbooks.vos.SugerenciaPDFsubido;
import com.gl.glbooks.vos.Usuario;

@Service
@RemotingDestination(channels = { "my-amf" })
@Transactional
public interface IAgregarServices {

	public Confirmacion agregarEjemplar(Ejemplar ejemplar,
			LibroFisico libroFisico);

	public Confirmacion agregarLibro(Libro libro, Ejemplar ejemplar1,
			byte[] imagenLibro, byte[] pdfLibro);
	
	public Confirmacion modificarLibro(Libro libro, byte[] imagenLibro);
	
	public Confirmacion agregarLibroSugeridoPdf(LibroDigital libroDigital,
			byte[] imagenLibro, SugerenciaPDFsubido sugerenciaPdfsubido);
	
	public Confirmacion agregarCategoria(Categoria categoria);
	
	public Confirmacion agregarEditorial(Editorial editorial);
	
	public Confirmacion agregarOficina(Oficina oficina);
	
	public Confirmacion agregarPalabra(PalabraClave palabrasClaves);
	
	public Confirmacion agregarActividad( Actividad actividad );
	
	public Confirmacion agregarSugerencia(Sugerencia sugerencia);
	
	public Confirmacion agregarComentarioLibro(Libro libro, Comentario comentario);
	
	public Confirmacion agregarLibroPdfsinAprobar(SugerenciaPDFsubido libroDigital,
			byte[] imagenLibro, byte[] pdfLibro);

	
	//TEST SERVICES
	public Oficina addOficinaAndReturn(Oficina oficina);
	
	public Categoria addCategoriaAndReturn(Categoria categoria);
	
	public Editorial addEditorialAndReturn(Editorial editorial);
	
	public LibroFisico addLibroFisicoAndReturn(LibroFisico libroFisico,Ejemplar ejemplar);
	
}
